/**
 * 将数字月份转换为"YYYY年MM月"格式
 * @param {any} month 
 * @return 
 */
export function convertMonth(month : any) {
	const date = new Date();
	date.setMonth(month - 1); // 月份从0开始，所以要减1
	const year = date.getFullYear();
	const monthStr = ('0' + (date.getMonth() + 1)).slice(-2); // 月份从0开始，所以要加1，并补零
	return year + '年' + monthStr + '月';
}
/**
 * 
 */
export function getAllDatesInRange(start_time : string | number | Date, end_time : string | number | Date) {
	const dates = []; // 创建一个空数组来存放时间列表
	// @ts-ignore
	const startDate = new Date(start_time); // 将开始时间转换为日期对象
	// @ts-ignore
	const endDate = new Date(end_time); // 将结束时间转换为日期对象

	// 循环生成时间列表
	while (startDate <= endDate) {
		const year = startDate.getFullYear(); // 获取年份
		const month = startDate.getMonth() + 1; // 获取月份（因为时间对象提供的月份从0开始，需要加1）
		dates.push({ year: year, month: month }); // 将年份和月份作为对象添加到时间列表
		startDate.setMonth(startDate.getMonth() + 1); // 递增一个月
	}

	// 对时间列表进行升序排列
	dates.sort(function (a, b) {
		return a.year - b.year || a.month - b.month;
	});

	// 格式化时间列表为字符串
	return dates.map(function (date) {
		return date.year + '年' + (date.month < 10 ? '0' : '') + date.month + '月';
	}); // 返回按照升序排列的时间列表
}
/**
 * 补0
 * @param {number | string} num 
 * @return 
 */
export function padZero(num : number | string) {
	return num.toString().padStart(2, '0');
};
/**
 * 格式化 YYYY-MM-DD
 * @param {Date | string} date 
 * @return 
 */
export function formatDate(date : Date | string) {
	if (!date) {
		return null;
	}
	const d = new Date(date);
	const year = d.getFullYear();
	const month = padZero(d.getMonth() + 1); // 月份从0开始，所以需要加1
	const day = padZero(d.getDate());
	return `${year}-${month}-${day}`;
};